Asynchronous Transfer Mode (ATM) is a networking technology which will be used in a variety of telecommunications and computing environments. ATM is designed to support users having diverse requirements for service. For example, ATM will support both Constant Bit Rate (CBR) and Variable Bit Rate (VBR) types of connections. Further, ATM is intended to provide flexible use of network bandwidth.
ATM is a connection oriented technology. Before data can be transferred between two stations, a connection (also referred to as a Virtual Circuit or VC) must be established between them. A first end station requests a connection to a second end station by submitting a connection request to a User to Network Interface (UNI) with the network. After a virtual circuit has been established, end stations exchange information by sending and receiving ATM "cells" containing data. An ATM cell is a fixed length packet used to relay data between network stations.
A major function of a station on an ATM network is supporting the Quality of Service (QoS) for each virtual circuit to which the station is connected. QoS is established for each virtual circuit when the circuits are set-up. Examples of QoS parameters that are specified in a connection request include loss rate, acceptable delay, and peak and average cell rates. In addition, when peak and average cell rates are specified, a burst size of the number of cells that can be transmitted at the peak cell rate can also be specified.
The network initially uses the QoS parameters in the connection request for admission control. When a request is made at a first end station for a connection with a second end station, the network and the second end station determine whether sufficient resources (transmission bandwidth, buffers, or other) exist to allow the connection to be established with the requested parameters, while not impacting the QoS of already established connections. If there are insufficient resources to support the requested QoS, the connection request is rejected, and request may subsequently be repeated with lower QoS parameters.
Once a connection is established, the network may ensure that each transmitting station meets and does not exceed, the QoS for each VC within that station. This is done through two complementary procedures, traffic shaping at the transmitting end station and each intermediate station, and traffic policing at each intermediate station and the receiving end station. Traffic shaping refers to steps performed by transmitting end stations and intermediate stations to ensure the transmission rate for any given VC does not exceed the peak or average data rate and burst characteristics allowed for that VC.
Traffic policing may be performed by intermediate network stations between the end stations of a connection, and by the receiving end station when receiving the forwarded cell. If an intermediate station or a receiving end station detects persistent transmission rates in excess of the QoS for a VC, it may take a variety of actions, including alerting network administrators, discarding cells, or adopting other congestion management schemes. Correct operation of the network and consistent service levels require that traffic shaping be used to pace cell streams transmitted from the end stations of an ATM network.
A known mechanism for controlling both the peak and average transmission rates for a single VC is referred to as the "Double Leaky Bucket" system. The Double Leaky Bucket system determines whether a VC can transmit a cell at a given point in time without exceeding the QoS parameters for that VC. In an ATM adapter for a network end station, which must simultaneously support Quality of service monitoring for a large number of VCs, implementing excessively complex Double Leaky Bucket logic for each individual potential VC is impractical in terms of chip silicon area and die size.
Also in ATM there is defined a ABR (Available Bit Rate) service, which does not specify peak and sustainable cell rate for a connection. ABR connections simply use whatever available bandwidth is dynamically available in the network, still allowing other connections the quality of service they have negotiated. Some users of ABR services may be latency sensitive. A network device that is capable of providing timely service to latency sensitive ABR connections is therefore desirable, in order to allow for interactive applications to work well even under heavy load conditions.
There is therefore a need for a new system for traffic shaping on ATM network stations. The new system should minimize the amount of logic required to be implemented in hardware or silicon so that it can be used efficiently to support large numbers of VCs in an ATM adapter for an end station on an ATM network. The new system should accurately and fairly control the transmission rate for each VC on a network station without using excessively complex Double Leaky Bucket circuits for each possible VC on the network station.